﻿using System;
using System.ComponentModel;
using System.Runtime.Serialization;
using BLToolkit.DataAccess;
using BLToolkit.Mapping;
using BLToolkit.Validation;

namespace Calendar.Logic.ObjectModel
{
    [DataContract, MapField("EMA_ID", "ID"), TableName("EMAILS")]
    public abstract class Email : Entity
    {
        [MapField("EMA_TEMPLATE"), DisplayName("Шаблон сообщения"), Required]
        public abstract string Template { get; set; }

        [MapField("EMA_TO"), DisplayName("Получатель"), Required]
        public abstract string To { get; set; }

        [MapField("EMA_PARAMS"), DisplayName("Значения параметров"), Required]
        public abstract string Params { get; set; }

        [MapField("EMA_ATTACH"), DisplayName("Вложения")]
        public abstract string Attach { get; set; }

        [MapField("EMA_SENT"), DisplayName("Отправлен"), Required]
        public abstract bool Sent { get; set; }

        [MapField("EMA_DATEIN"), DisplayName("Дата внесения в очередь на отправку")]
        public abstract DateTime DateIn { get; set; }

        [MapField("EMA_DATESEND"), DisplayName("Дата отправки")]
        public abstract DateTime DateSend { get; set; }
    }
}
